Tensorlistreserve ================= 为张量列表(TensorList)预分配指定数量和形状的张量空间。该算子用于初始化TensorList结构,设置其内部张量的形状信息和TensorList本身的形状。 该算子不区分具体的数据类型,主要负责设置TensorList的元数据信息。 输入: - **num_elements** - TensorList中包含的张量数量(int类型)。 - **element_shape** - 每个张量的形状数组(int*类型),表示TensorList中每个张量的维度信息。 - **shape_size** - 每个张量的形状大小(int类型),即element_shape数组的长度。 - **tensor_list_c_element_shape_size** - 输出参数,用于存储TensorList内部每个张量的形状大小(int*类型)。 - **tensor_list_c_element_shape** - 输出参数,用于存储TensorList内部每个张量的形状(int*类型)。 - **tensor_c_shape_size** - 输出参数,用于存储TensorList本身的形状大小(int*类型)。 - **tensor_c_shape** - 输出参数,用于存储TensorList本身的形状(int*类型)。 输出: - **tensor_list_c_element_shape_size** - 被设置为shape_size的值。 - **tensor_list_c_element_shape** - 被填充为element_shape的值。 - **tensor_c_shape_size** - 被设置为1,表示TensorList本身是一个1维结构。 - **tensor_c_shape** - 被设置为num_elements,表示TensorList包含num_elements个张量。 支持平台: ``FT78NE`` ``MT7004`` .. note:: - 该算子不区分具体的数据类型,主要操作TensorList的元数据 - TensorList中的每个张量必须具有相同的形状(element_shape) - 调用前需要确保tensor_list_c_element_shape和tensor_c_shape指向的内存空间足够大 **函数定义:** .. c:function:: void Tensorlistreserve(int num_elements, int *element_shape, int shape_size, int *tensor_list_c_element_shape_size, int *tensor_list_c_element_shape, int *tensor_c_shape_size, int *tensor_c_shape) **C调用示例:** .. code-block:: c :linenos: :emphasize-lines: 17-20 #include #include int main(int argc, char* argv[]) { // 参数设置 int num_elements = 3; // TensorList包含3个张量 int element_shape[] = {4, 5}; // 每个张量的形状为[4, 5] int shape_size = 2; // element_shape数组长度为2 // 输出参数 int tensor_list_c_element_shape_size; int tensor_list_c_element_shape[2]; // 空间大小应至少为shape_size int tensor_c_shape_size; int tensor_c_shape; // 调用算子 Tensorlistreserve(num_elements, element_shape, shape_size, &tensor_list_c_element_shape_size, tensor_list_c_element_shape, &tensor_c_shape_size, &tensor_c_shape); return 0; }